package db

import (
	mydb "FILESTORE-SERVER/db/mysql"
	"database/sql"
	"fmt"
)

type TableFile struct {
	FileHash string
	FileName sql.NullString
	FileSize sql.NullInt64
	FileAddr sql.NullString
}

// mysql查询文件元信息
// 从返回的表中获取的数据 填入到TableFile中
func GetFileMeta(filehash string) (*TableFile, error) {
	stmt, err := mydb.DBConn().Prepare(
		"select file_sha1, file_addr, file_name, file_size from tbl_file " +
			"where file_sha1 = ? and status = 1 limit 1")
	if err != nil {
		fmt.Printf("sql server problem : %v\n", err)
		return nil, err
	}
	defer stmt.Close()

	// 填入表
	tfile := TableFile{}
	err = stmt.QueryRow(filehash).Scan(
		&tfile.FileHash, &tfile.FileAddr, &tfile.FileName, &tfile.FileSize)
	if err != nil && err != sql.ErrNoRows {
		fmt.Printf("sql query error : %v", err)
		return nil, err
	}
	return &tfile, nil
}
